Increasingly, in the computing world, functionality is distributed. Such distribution is achieved through the separation of the functionality or data (collectively resources), and the physical or logical decoupling of such resources. In order to accomplish certain tasks or applications multiple resources may be needed. Thus, communications between various components may be required when implementing that functionality.
To illustrate in more detail, in many cases content (which may also be referred to herein as documents or files) may be accessed from a number of users spread across many different sites or networks using a number of different applications. This situation presents a special set of challenges, as many of these users may need to work collaboratively on a document, or the content may be part of enterprise which wishes to manage the content (e.g., version such content, maintain a historical archive of such content, reconcile changes, apply permissions to such content, etc.).
In order to manage the content, however, an at least somewhat centralized management environment may need to be applied to the content. Specifically, in certain content management environments a primary content management platform may serve as a centralized access point for the content, applying permissions, versioning, etc. to the content. As may be seen, however, the use of such a centralized management platform may be antithetical to the highly distributed environment in which the content is access and utilized.
In particular, use of these types of centralized management architectures in a distributed network environment may present certain problems, some of the most concerning of which have to do with speed of access. As detailed above, in many cases the users who access content may be distributed, and remote from, a centralized content management platform, with varying speed, bandwidth and reliability of network connections to such a content management platform. Despite these types of variations, all accesses by all users to the managed content must go through the primary content management server in order that the content being accessed may be managed in conjunction with the access. Such accesses may therefore require a number of communications between whatever application is being utilized to access the content and the primary content management server in order to, for example, reconcile permissions, version the content, download the content from the management server to the user's local device, upload changes from the user's application to the central management server, or perform other functionality involve with managing the content.
For at least these reasons then, because access to content may be distributed, and remote from, a centralized content management platform, with varying speed, bandwidth and reliability of network connections, both the availability of content and the speed of access to such content when it is available may be inconsistent. If the network connection is slow or unavailable, a user's access to desired content may be impeded.
Accordingly, what is needed are systems and methods which speed or otherwise serve to optimize access to managed content in a distributed network environment.